package com.chee.plant.logic.farm;

import java.util.Date;
import java.util.Vector;
import com.chee.plant.hibernate.dao.FarmPlantDAO;
import com.chee.plant.hibernate.object.FarmPlant;
import com.chee.plant.logic.CmdHandler;
import com.chee.plant.server.Message;

/**
 * 种植植物的操作
 * 
 * @author xue cb
 * 
 */
public class ToGrowPlantHandler implements CmdHandler {

	// 农田是从左上到右下看，可以看成5行3列，写成详细坐标就是这样：
	// (1,1),(1,2),(1,3)
	// (2,1),(2,2),(2,3)
	// (3,1),(3,2),(3,3)
	// (4,1),(4,2),(4,3)
	// (5,1),(5,2),(5,3)
	// 次序依次是 ：
	// 3 2 1
	// 6 5 4
	// 9 8 7
	// 12 11 10
	// 15 14 13

	/**
	 * 根据地块的xy坐标确定是第几块地
	 * 
	 * @param coord_x
	 *            x 坐标
	 * @param coord_y
	 *            y 坐标
	 * @return
	 */
	public static int getNumber(int coord_x, int coord_y) {
		int number = 0;
		for (int i = 1; i < 6; i++) {
			if (coord_y == 1) {
				number = 3 * i - 1 + 1;
			} else if (coord_y == 2) {
				number = 3 * i - 2 + 1;
			} else {
				number = 3 * i - 3 + 1;
			}
		}
		return number;
	}

	@Override
	public Vector<Message> executeCmd(Message msg) {

		// 解析客户端传过来的内容 ,包括：
		// coord_x=? x坐标 coord_y=? y坐标 userId

		int coord_x = Integer.parseInt(msg.getData("coord_x").toString());
		int coord_y = Integer.parseInt(msg.getData("coord_y").toString());
		// 获取用户Id
		int userId = msg.getUserId();
		// 土地类型
		int type = 0;

		// 判断是第几块地
		int number = ToGrowPlantHandler.getNumber(coord_x, coord_y);

		// 判断土地类型
		// 如果是以下几种情况就说明是试验田

		if (number == 1 || number == 4 || number == 7 || number == 10
				|| number == 13) {
			type = 1;
		}

		// 还有userplant_id =?

		// 组装FarmPlant实例对象
		FarmPlant farmPlant = new FarmPlant();
		farmPlant.setCoordX(coord_x);
		farmPlant.setCoordY(coord_y);
		farmPlant.setGrowTime(new Date());
		farmPlant.setType(type);
		farmPlant.setUserId(userId);
		// farmPlant.setUserplantId(userplantId);
		// 调用FarmPlantDAO保存方法存入数据库
		FarmPlantDAO dao = new FarmPlantDAO();
		dao.save(farmPlant);

		return null;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
